package com.ruoyi.system.domain;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * 服务商模块对象 sys_supplier_module
 * 
 * @author ruoyi
 * @date 2022-06-25
 */
@ApiModel(value = "SysSupplierModule",description="服务商模块")
public class SysSupplierModule extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 模块id */
    private Long moduleId;

    /** 模块标签 */
    @ApiModelProperty(name="moduleTag", value="模块标签")
    @NotBlank(message = "模块标签不能为空")
    @Excel(name = "模块标签")
    private String moduleTag;

    /** 服务商id */
    @ApiModelProperty(name="supplierId", value="服务商")
    @NotNull(message = "服务商不能为空")
    @Excel(name = "服务商id")
    private Long supplierId;

    /** 模块类型id */
    @ApiModelProperty(name="moduleTypeId", value="模块类型")
    @NotNull(message = "模块类型不能为空")
    @Excel(name = "模块类型id")
    private Long moduleTypeId;

    /** 模块名称 */
    @ApiModelProperty(name="moduleName", value="模块名称")
    @NotBlank(message = "模块名称不能为空")
    @Size(min = 0, max = 30, message = "模块名称长度不能超过30个字符")
    @Excel(name = "模块名称")
    private String moduleName;

    /** 模块logo */
    @ApiModelProperty(name="moduleLogo", value="模块logo")
    @NotBlank(message = "模块logo不能为空")
    @Size(min = 0, max = 100, message = "模块logo长度不能超过100个字符")
    @Excel(name = "模块logo")
    private String moduleLogo;

    /** 模块介绍 */
    @ApiModelProperty(name="moduleIntro", value="模块介绍")
    @NotBlank(message = "模块介绍不能为空")
    @Excel(name = "模块介绍")
    private String moduleIntro;

    /** 显示顺序 */
    @ApiModelProperty(name="orderNum", value="显示顺序")
    @NotNull(message = "显示顺序不能为空")
    @Excel(name = "显示顺序")
    private Integer orderNum;

    @ApiModelProperty(name="supplierName", value="服务商名称")
    @Excel(name = "服务商名称")
    private String supplierName;

    @ApiModelProperty(name="moduleTypeName", value="模块类型名称")
    @Excel(name = "模块类型名称")
    private String moduleTypeName;

    /** 模块状态（0待审核，1-已退回，2-待发布， 3-正常，4-停用） */
    @ApiModelProperty(name="moduleStatus", value="模块状态（0待审核，1-已退回，2-待发布， 3-正常，4-停用）")
    private String moduleStatus;

    /** 拒绝原因 */
    @ApiModelProperty(name="reason", value="拒绝原因")
    @Size(max = 100, message = "拒绝原因长度不能超过30个字符")
    @Excel(name = "拒绝原因")
    private String reason;

    public void setModuleId(Long moduleId) 
    {
        this.moduleId = moduleId;
    }

    public Long getModuleId() 
    {
        return moduleId;
    }

    public String getModuleTag() {
        return moduleTag;
    }

    public void setModuleTag(String moduleTag) {
        this.moduleTag = moduleTag;
    }

    public Long getModuleTypeId() {
        return moduleTypeId;
    }

    public void setModuleTypeId(Long moduleTypeId) {
        this.moduleTypeId = moduleTypeId;
    }

    public void setSupplierId(Long supplierId)
    {
        this.supplierId = supplierId;
    }

    public Long getSupplierId() 
    {
        return supplierId;
    }
    public void setModuleName(String moduleName) 
    {
        this.moduleName = moduleName;
    }

    public String getModuleName() 
    {
        return moduleName;
    }
    public void setModuleLogo(String moduleLogo) 
    {
        this.moduleLogo = moduleLogo;
    }

    public String getModuleLogo() 
    {
        return moduleLogo;
    }
    public void setModuleIntro(String moduleIntro) 
    {
        this.moduleIntro = moduleIntro;
    }

    public String getModuleIntro() 
    {
        return moduleIntro;
    }
    public void setOrderNum(Integer orderNum) 
    {
        this.orderNum = orderNum;
    }

    public Integer getOrderNum() 
    {
        return orderNum;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public String getModuleTypeName() {
        return moduleTypeName;
    }

    public void setModuleTypeName(String moduleTypeName) {
        this.moduleTypeName = moduleTypeName;
    }

    public String getModuleStatus() {
        return moduleStatus;
    }

    public void setModuleStatus(String moduleStatus) {
        this.moduleStatus = moduleStatus;
    }

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("moduleId", getModuleId())
            .append("moduleTypeId", getModuleTypeId())
                .append("moduleTag", getModuleTag())
            .append("supplierId", getSupplierId())
            .append("moduleName", getModuleName())
            .append("moduleLogo", getModuleLogo())
            .append("moduleIntro", getModuleIntro())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("orderNum", getOrderNum())
            .toString();
    }
}
